using System;
using System.Collections.Generic;
using ns26;
using ns27;
using Triton.Game.Mono;

namespace Triton.Game.Mapping
{
	[Attribute38("RewardData")]
	public class RewardData : MonoClass
	{
		public Reward.Type m_type => method_2<Reward.Type>("m_type");

		public NetCache.ProfileNotice.NoticeOrigin m_origin => method_2<NetCache.ProfileNotice.NoticeOrigin>("m_origin");

		public long m_originData => method_2<long>("m_originData");

		public List<long> m_noticeIDs => method_3<Class270<long>>("m_noticeIDs")?.method_25();

		public bool m_isDummyReward => method_2<bool>("m_isDummyReward");

		public Reward.Type RewardType => method_11<Reward.Type>("get_RewardType", Array.Empty<object>());

		public NetCache.ProfileNotice.NoticeOrigin Origin => method_11<NetCache.ProfileNotice.NoticeOrigin>("get_Origin", Array.Empty<object>());

		public long OriginData => method_11<long>("get_OriginData", Array.Empty<object>());

		public bool IsDummyReward => method_11<bool>("get_IsDummyReward", Array.Empty<object>());

		public string NameOverride => method_13("get_NameOverride");

		public string DescriptionOverride => method_13("get_DescriptionOverride");

		public RewardData(IntPtr address, string className)
			: base(address, className)
		{
		}

		public RewardData(IntPtr address)
			: this(address, "RewardData")
		{
		}

		public void SetOrigin(NetCache.ProfileNotice.NoticeOrigin origin, long originData)
		{
			method_8("SetOrigin", origin, originData);
		}

		public void AddNoticeID(long noticeID)
		{
			method_8("AddNoticeID", noticeID);
		}

		public List<long> GetNoticeIDs()
		{
			return method_14<Class270<long>>("GetNoticeIDs", Array.Empty<object>())?.method_25();
		}

		public void AcknowledgeNotices()
		{
			method_8("AcknowledgeNotices");
		}

		public void MarkAsDummyReward()
		{
			method_8("MarkAsDummyReward");
		}

		public string GetAssetPath()
		{
			return method_13("GetAssetPath");
		}

		public void OnRewardObjectLoaded(AssetReference assetRef, GameObject go, object callbackData)
		{
			method_8("OnRewardObjectLoaded", assetRef, go, callbackData);
		}
	}
}
